package com.yf.internedstring;

/*
分析方法：查看字节码指令
 */
public class StringNewTest {
    public static void main(String[] args) {
        /*
        问：下面的代码会创建几个对象？
         */
        String s = new String("ab");

        /*
        答：两个。
            一个是new关键字在堆空间创建的
            另一个是字符串常量池中的"ab"

        思考：下面的代码创建了几个对象？
         */
        String s2 = new String("a") + new String("b");

        /*
        对象1：new StringBuilder()
        对象2：new String("a")
        对象3：常量池中的"a"
        对象4：new String("b")
        对象5：常量池中的"b"
        对象6：StringBuilder和toString()方法中调用new String("ab")，但字符串常量池中并不存在"ab"
         */
    }
}
